﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DDD.Core {

    /// <summary>
    /// キーフレーム構造体
    /// </summary>
    /// <remarks>
    /// 1つのキーフレームデータ(キー､バリューのペア)を保存します｡
    /// タイムでなくポジションと言っているのは歴史的な事情です｡
    /// </remarks>
    public struct Keyframe  {
        /// <summary>
        /// コンストラクター
        /// </summary>
        /// <remarks>
        /// <paramref name="value"/>の値は直ちにコピーされます｡
        /// </remarks>
        /// <param name="position">ポジション</param>
        /// <param name="value">値</param>
        public Keyframe (int position, float[] value) : this() {
            if (value == null) {
                throw new ArgumentNullException ("Value is null");
            }
            this.Position = position;
            this.Value = (float[])value.Clone ();
        }
        /// <summary>
        /// ポジション
        /// </summary>
        public int Position { get; private set; }

        /// <summary>
        /// 値
        /// </summary>
        public float[] Value { get; private set; }
    }
}
